[4. Programacion en C II ]===================================================================]
[By _Alphaice_  [From the DarkStar of DarkSide]...por una Cultura Digital ]==================]
[============================================================================================]


#include <stdio.h>
{
  printf("Hola CDT");
}


Aqui yo otra vez para entregar la segunda parte de nuestro cursillo el cual aunque algo 
pequeo no deja de merecer el contenido, ya dejemos de tanto bla, bla, y comencemos este 
curso. Bueno en la primera parte comenzamos con la estructura de un programa en c ahora 
vamos a pasar a una de las partes mas dificiles, que son las sentencias de control.
Me imagino que han estudiado y que antes de empezar a leer esto le dieron una buena repasada 
a la primera parte de este curso ya que es fundamental que ya tengan bien aprendida la 
primera parte para que no se confundan; asi que si no han repasado... tomen de inmediato la 
numero "0" y a estudiar, ok ;).


0. Sentencias de control
------------------------

Como su nombre lo indica es lo que da control a nuestro programa me refiero a que cuando 
nosotros queremos que nuestro programa haga algo tenemos que darle ordenes como por ejemplo 
si queremos que haga esto o si queremos que haga esto otro, todo debe tener un orden, bueno 
se daran cuenta poco a poco de esto ya que las mismas sentencias tienen nombres logicos como 
por ejemplo "while" (mientras), por ahora solo nos dedicaremos indicar las sentencias de 
control y como se utilizan. En un futuro episodio de este curso nos dedicaremos a trabajar 
con todo lo aprendido y haremos programas aunque pequeos pero bastantes explicativos.
Una sentencia consta de palabras reservadas, expresiones y otras sentencias; cada sentencia 
termina con un punto y coma (;).

Un tipo especial de sentencia, la sentencia compuesta o bloque, es un grupo de sentencias 
encerradas entre llaves ( {_} ). El cuerpo de una funcion es una sentencia compuesta. Una 
sentencia compuesta puede tener variables locales.


1. Sentencia if
----------------

En castellano if significa si (pa' los que no saben english) su uso es simple tal como indica
la sentencia se pregunta, "si una expresion es correcta o se satisface se hace tal cosa o tal
efecto se logra", para entender mas vamos a la practica.
Primero graficamente y despues un ejemplo.

if (expresion){
    sentencia;
}

Ejemplo:    /* Asumimos que ya estan declaradas las variables las librerias y todo lo demas */
  if (x>0){  /* la sentencia pregunta si la variable x es mayor que 0 */
     y=x+2; /* si lo es x se suma mas 2 y se guarda en una variable llamada y */
     }

Despues de este ejemplo creo que nos hace mas claro el panorama, o no???


2. Sentencia if-else
---------------------

Esta no es una sentencia, mas bien es una extension de la sentencia if, ya que logra, por asi 
decirlo, alargar la sentencia. Su significado literal seria de la siguiente manera: si(if) 
(se cumple esta condicion) se hace esto sino(else) se hace esto otro, y asi sucesivamente 
hasta que termine de hacer lo que buscamos en el programa Veamolos igual como lo vimos 
anteriormente.



if (expresion){
    sentencia1;     /*Es muy parecido a lo que vimos anteriormente */
  else              /*pero aqui decimos que si no se cumplio la expresion */
    sentencia2;     /*se hace esto y sino se hace esto otro */
  else
    sentencia3;
     .
     .
     .
  else
    sentenciax;
  }

o bien

if (expresion){
    sentencia1;  /*este es otro formato pero es correcto al compilador*/
    sentencia2;
  else
    sentencia3;
    sentencia4;
  }

Ejemplo:
if (x=0){
   x=x+1
else
   x=x*2
}

o tambien podemos combinar de la siguiente manera:

if (cel=farh){
   cel=farh+2;      /*a esto se le llama if anidados*/
else
   if (cel=cat)
     cel=cel+4;
}


3. Sentencia switch
--------------------

La sentencia switch realiza una bifigucacion multiple, dependiendo del valor de la expresion, 
en espaol... que lo podemos ver de la siguiente manera... para esta expresion, en el caso 
que sea asi, se hace esto; en el caso que sea asa, esto es como usar un menu, mejor lo vemos 
en el ejemplo:


switch (expresion) {
  case valor1;
     sentencia1;  /*se ejecuta si expresion es igual a valor1*/
     break;
  case valor2;
     sentencia2;
     break;
}

Ejemplo:

switch (op){
  case 'a':
      func1();
      break;
  case 'b':
      func2();
      break;
}


4. Sentencia while
-------------------

Esto es facil y muy util, miremoslo asi, mientras (pah los que no saben english while es 
mientras) se cumple esto se hace esto otro, bueno pensaran que es lo mismo que el if pero no! 
no es lo mismo porque aqui podemos poner gran cantidad de codigo que se ejecuta mientras se 
siga cumpliendo la expresion (ven que no era igual) es muy dinamico y facil de usar, veamos 
un ejemplo.


while (expresion){   /*comparte la misma sintaxis que tiene la sentencia if por lo que es*/
  sentencia1;        /*muy facil de entender */
  sentencia2:        /*obvio pueden ser una o mas sentencias*/
  ...
}

Ejemplo:

While (cad=0){
   x++;
   petcad = x+cont;
}


5. Sentencia do-while
----------------------

Adivinen... es lo mismo que arriba pero otra forma de escribirlo, ejemplo.

do {
  sentencia1;
  sentencia2;
  sentencia3;
  ...
}while (expresion);

no es necesario otro ejemplo ya que lo pueden construir desde el de arriba.


6. Sentencia for
-----------------

Esta es mas dificil de entender pero haremos un esfuerzo para entenderla ok, bueno lo vamos 
a mostrar literalmente primero, for en ingles es por, entonces, lo podemos ver asi... por este
valor y este otro valor (si se cumple) se hace esto.  Generalmente esto se usa como contador
pero ustedes le pueden encontrar un uso muy didactico (como yo lo hacia en mis clases de prog.)
ahora vamos al ejemplo.


for (expresion1; expresion2; expresion3){   /*bueno la primera expresion es el comienzo*/
  sentencia;                                /*la segunda es hasta donde y la tercera es*/
}                                           /*el contador que se crece o decrece segun el 
                                              programa*/

bueno esto equivale a lo siguiente...

expresion1;
while (expresion2){    /*si no entendieron esto con el siguiente ejemplo lo van a entender*/
  sentencia;
  expresion3;
}

Ejemplo:

for (i=1; i<=100; i++;){  /*ahora si, ven la primera expresion "i" comienza en 1 en la 
                            segunda*/
  printf("i == %d\n",i);  /*dice que el for continua mientras que "i" sea menor o igual a
                            100*/
}                         /*y la tercera dice que cada vez que el programa pasa por el for 
                            "i"*/
                          /*se incrementa en uno, y esto va a seguir hasta que "i" sea igual 
                            a 100*/


7. Sentencia nula
------------------

El nombre raro pero existe... la sentencia representada por punto y coma no hace nada. Se 
utilizan sentencias nulas en bucles (if o while), cuando todo el proceso se hace en las 
expresiones del bucle en vez del cuerpo, ejemplo localizar el byte cero que marca el final de 
una cadena, ejemplo:

while (x=8){
;             /*esta es la sentecia nula*/

}


8. Sentencia break
-------------------

Esta es mas facil de entender, break sirve para salir de un bucle for, while, do-while, o de 
una seccion case de una sentencia switch (como lo vimos anteriormente en la explicacion de 
switch) o sea salir forzosamente del bucle para pasar a la siguiente expresion.
Ejemplo:


if (expresion){
  break;
}


9. Despedida
-------------

Bueno chicos aqui los dejo para que practiquen y se dediquen a jugar con este lenguaje de 
programacion que si bien no es el unico es una base para aprender de mejor manera a programar.

Esta vez no les dejo un ejercicio lo dejare pendiente para la proxima edicion ya que tube una 
emergencia en mi computador del cual pude rescatar a rastras este txt que gracias a la 
divinidad computacional lo tenia en un disquette, ya saben lean y si tienen la oportunidad de 
ver algun programa en c leanlo meditenlo y entiendanlo lo mayor que puedan, para la proxima 
les tengo una sorpresa... un pequeno progra-mita hecho de mi propia mano tratando de tener 
todo lo enseado hasta ahora, asi que preparense para la tercera parte y final de este curso 
explicativo de c.

Bien cuidense no hagan maldades (o sino se los lleva el bricib jejejej) cualquier pregunta 
haganmela saber ok chaox byex.

/*fin de programa*/

